/*
 * 04文件行读写.c
 *
 *  Created on: 2024年3月16日
 *      Author: HP
 */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main1004(){
	FILE* fp = fopen("D:/zsl/a.txt", "r");
	if(!fp){
		return -1;
	}
	// 注意：最后要预留一个\0
	char* p = (char*)malloc(sizeof(char)*100);
	// feof: 判断文件是否到结尾，可以判断文本文件也可以判断二进制文件，如果到结尾返回为非0的值；没到结尾返回0
	while(!feof(fp)){
		memset(p, 0, 100);
		fgets(p, 100, fp);
		printf("%s", p);
	}
	free(p);
	fclose(fp);
	return 0;
}

int main100401(){
	FILE* fp = fopen("D:/zsl/a.txt", "w");
	if(!fp){
		return -1;
	}
	char ch[] = "你愁啥\n瞅你咋地";
	// 遇到\0就停止；遇到\n就换行
	fputs(ch, fp);
	fclose(fp);
	return 0;
}

int main100402(){
	FILE* fp = fopen("D:/zsl/a.txt", "w");
	if(!fp){
		return -1;
	}
	char* p = (char*)malloc(sizeof(char)*1024);
	while(1){
		memset(p, 0, 1024);
		// scanf("%s", p); // 这样写会没有空格和换行
		// 接受非换行的内容，用fgets更好些
		scanf("%[^\n]", p);
		getchar();
		if(!strcmp(p, "comm=exit")){
			break;
		}
		// 追加\n
		strcat(p, "\n");
		fputs(p, fp);
	}
	free(p);
	fclose(fp);
	return 0;
}
